from utils import get_embedding, cosine_similarity, cosine_similarity_2, logging




# 参考文章如下
# 链接 http://www.csrc.gov.cn/csrc/c100107/c1447186/content.shtml

query = """
上市公司依照《实施细则》第七条引入战略投资者，有什么具体要求?
"""


text1 = """
上市公司非公开发行股票引入战略投资者，具体按以下要求把握：
一、关于战略投资者的基本要求
《实施细则》第七条所称战略投资者，是指具有同行业或相关行业较强的重要战略性资源，与上市公司谋求双方协调互补的长期共同战略利益，愿意长期持有上市公司较大比例股份，愿意并且有能力认真履行相应职责，委派董事实际参与公司治理，提升上市公司治理水平，帮助上市公司显著提高公司质量和内在价值，具有良好诚信记录，最近三年未受到证监会行政处罚或被追究刑事责任的投资者。
战略投资者还应当符合下列情形之一：
1.能够给上市公司带来国际国内领先的核心技术资源，显著增强上市公司的核心竞争力和创新能力，带动上市公司的产业技术升级，显著提升上市公司的盈利能力。
2.能够给上市公司带来国际国内领先的市场、渠道、品牌等战略性资源，大幅促进上市公司市场拓展，推动实现上市公司销售业绩大幅提升。
"""

text2 = """
上市公司非公开发行股票引入战略投资者，具体按以下要求把握：

　　一、关于战略投资者的基本要求

　　《实施细则》第七条所称战略投资者，是指具有同行业或相关行业较强的重要战略性资源，与上市公司谋求双方协调互补的长期共同战略利益，愿意长期持有上市公司较大比例股份，愿意并且有能力认真履行相应职责，委派董事实际参与公司治理，提升上市公司治理水平，帮助上市公司显著提高公司质量和内在价值，具有良好诚信记录，最近三年未受到证监会行政处罚或被追究刑事责任的投资者。

　　战略投资者还应当符合下列情形之一：

　　1.能够给上市公司带来国际国内领先的核心技术资源，显著增强上市公司的核心竞争力和创新能力，带动上市公司的产业技术升级，显著提升上市公司的盈利能力。

　　2.能够给上市公司带来国际国内领先的市场、渠道、品牌等战略性资源，大幅促进上市公司市场拓展，推动实现上市公司销售业绩大幅提升。
"""



text3 = """
上市公司非公开发行股票引入战略投资者，具体按以下要求把握：



一、关于战略投资者的基本要求



《实施细则》第七条所称战略投资者，是指具有同行业或相关行业较强的重要战略性资源，与上市公司谋求双方协调互补的长期共同战略利益，愿意长期持有上市公司较大比例股份，愿意并且有能力认真履行相应职责，委派董事实际参与公司治理，提升上市公司治理水平，帮助上市公司显著提高公司质量和内在价值，具有良好诚信记录，最近三年未受到证监会行政处罚或被追究刑事责任的投资者。


战略投资者还应当符合下列情形之一：



1.能够给上市公司带来国际国内领先的核心技术资源，显著增强上市公司的核心竞争力和创新能力，带动上市公司的产业技术升级，显著提升上市公司的盈利能力。


2.能够给上市公司带来国际国内领先的市场、渠道、品牌等战略性资源，大幅促进上市公司市场拓展，推动实现上市公司销售业绩大幅提升。
"""







text_list = [text1, text2, text3]
score_list = [None] * len(text_list)

# 获取两个文本的嵌入向量
query_emb = get_embedding(query)

# 使用 for 循环计算每个文档与查询文本的余弦相似度
for i, text in enumerate(text_list):
    text_emb = get_embedding(text)
    similarity = cosine_similarity_2(query_emb, text_emb)
    score_list[i] = similarity
    print(f"文档{i+1}: {similarity:.4f}")

# 保存到日志
logging.info(f"'test6 >>>>>>>>>>>'")
logging.info(f"'query': {query}")
for i, score in enumerate(score_list):
    logging.info(f"'问题与文档{i+1}的相似度分数': {score:.4f}")

# 日志分割==========
logging.info("'================================='")
logging.info("'================================='\n\n\n")
